package org.example.communication_room.Controller;

//@RestController
//@RequestMapping("/websocket")
//public class WebSocketRestController {
//    private LongAdder connections = new LongAdder();
//    private static final Logger logger = LoggerFactory.getLogger(WebSocketRestController.class);
//    @Autowired
//    private UserServiceImpl userService;
//    private final SimpMessagingTemplate messagingTemplate;
//
//    @Autowired
//    public WebSocketRestController(SimpMessagingTemplate messagingTemplate) {
//        this.messagingTemplate = messagingTemplate;
//    }
//
//    @MessageMapping("/notify")
//    @SendTo("/topic/UserLineIn")
//    public String notifyUser(@RequestBody DataMessage message) {
//        String username = message.getSender();
//        String action = message.getBody();  // 'connect' or 'disconnect'
//        String msg=username+"上线了";
//        connections.increment();
//        logger.info("{} 上线了, 当前在线人数: {}", username, connections.intValue());
//        userService.updateUserOnlineStatus(username, true);
//        userService.updateUserOnlineStatus(username, action.equals("connect"));
//        return msg;
//    }
//
//    // Notify user offline
//    @MessageMapping("/notify-off")
//    @SendTo("/topic/UserLineOff")
//    public String notifyUserOffline(@RequestParam String username) {
//        User user = userService.findUserByUsername(username);  // Ensure you have this method in your service
//        if (user != null) {
//            String message = username + "已下线";
//            messagingTemplate.convertAndSend("/topic/onlineUsers", message);
//            userService.updateUserOnlineStatus(username, false);
//            connections.decrement();
//            logger.info("{} 已下线, 当前在线人数: {}", username, connections.intValue());
//            return message;
//        }
//        return "";
//    }
//    // Get current online count
//    @GetMapping("/online-count")
//    public Integer getOnlineCount() {
//        logger.info("当前在线人数: {}", connections.intValue());
//        return connections.intValue();
//    }
//    // Broadcast message
//    @PostMapping("/broadcast")
//    public ResponseEntity<String> broadcastMessage(@RequestParam String message) {
//        if (message == null || message.isEmpty()) {
//            return ResponseEntity.badRequest().body("消息不能为空");
//        }
//        messagingTemplate.convertAndSend("/topic/broadcast", message);
//        return ResponseEntity.ok("广播消息: " + message);
//    }
//}
